package com.atguigu.gmall.payment.pay;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * 管理每种不同的支付方式
 */
@Component
@SuppressWarnings("all")
public class PayManage {

    /**
     * 注入所有支持支付平台对象
     * Map中key:支付对象Bean对象ID
     * Map中value支付实例对象
     */
    @Autowired
    private Map<String,PayAPI> payWayMap;

    /**
     * 根据前端传入的支付类别,返回支付实例对象
     * @param type 页面中选中提交付款方式
     * @return 支付实例对象结果
     */
    public PayAPI getPayInstance(String type){
        PayAPI payAPI = payWayMap.get(type);
        if(payAPI == null){
            throw new RuntimeException("抱歉,目前尚未支持该付款方式!");
        }
        return payAPI;
    }
}